const AdminBiz = require('../../../../store/admin_biz_config.js');
// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, cloudHelper, validate } = pathImport;
// 引入MobX绑定
import { createStoreBindings } from '../../../../../../miniprogram_npm/mobx-miniprogram-bindings/index';
import { adminStore } from '../../../../config/store_config.js';

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		formOldPassword: '',
		formPassword: '',
		formPassword2: '',
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		// 创建MobX绑定
		this.storeBindings = createStoreBindings(this, {
			store: adminStore,
			actions: ['isAdmin', 'updateMgrPwd']
		});
		
		if (!this.isAdmin(this)) return;
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
	},

	/** 
	 * 数据提交
	 */
	bindFormSubmit: async function () {
		if (!this.isAdmin(this)) return;

		let data = this.data;

		// 数据校验 
		data = validate.check(data, AdminBiz.CHECK_FORM_MGR_PWD, this);
		if (!data) return;

		if (data.password != data.password2) {
			return pageHelper.showModal('两次输入的新密码不一致');
		}

		try {
			// 使用MobX的updateMgrPwd方法
			const result = await this.updateMgrPwd(data);
			if (result) {
				let callback = () => {
					wx.navigateBack();
				}
				pageHelper.showSuccToast('修改成功', 1500, callback);
			}
		} catch (err) {
			console.log(err);
		}
	},
})